package cn.com.zero.api.message.dubbo;

/**
 * @author xiongxj
 * @version 1.0.0
 * @Description 消息操作service接口
 * @createTime 2023/2/13 17:29
 */
public interface IMessageService {

    /**
     * 发送短消息
     *
     * @param phoneNumber 手机号
     * @param messageType 消息类型，对应的消息内容允许带有占位符，占位符使用{},如：您的订单[{}]已发货，请注意查收货物！
     * @param ip        IP地址
     * @param args        占位符替换参数
     */
    void sendMessage(String phoneNumber, String messageType, String ip, Object... args);

    /**
     * 发送验证码
     *
     * @param phoneNumber 手机号
     * @param messageType 消息类型，如：code_login_user、code_register_user
     */
    void sendVerificationCode(String phoneNumber, String messageType, String ip);

    /**
     * 验证验证码是否正确
     *
     * @param phoneNumber 手机号
     * @param messageType 消息类型，如：code_login_user、code_register_user
     * @param verifyCode  验证码
     * @return 验证结果 0表示验证成功，负数表示验证失败
     */
    Long checkVerificationCode(String phoneNumber, String messageType, String verifyCode);
}
